package com.syf.constant;

/**
 * 登录/SQL的常量表:
 *      sys_user: 管理员表
 *      sys_role_privilege：角色-权限
 *      sys_user_role：管理员角色表
 *      sys_privilege： 管理员权限表
 *
 *      user: 会员表(用户)
 *
 */
public class LoginConstant {

    //后台管理人员(登录类型标识)
    public static final  String ADMIN_TYPE = "admin_type" ;

    //普通的用户
    public static  final  String MEMBER_TYPE = "member_type" ;


    /**
     * 一、用于登录: 根据 用户名 查询用户【username -> user】
     */
    public static final String QUERY_ADMIN_SQL =
            "SELECT `id` , `password`, `status` FROM sys_user WHERE username = ? ";



    /**
     * 二、查询用户的权限:(sys_role,sys_user_role)
     *      1.根据用户id 查询用户的 角色Code
     */
    public static final String QUERY_ROLE_CODE_SQL =
            "SELECT `code` FROM sys_role LEFT JOIN sys_user_role ON sys_role.id = sys_user_role.role_id WHERE sys_user_role.user_id= ?";

    /**
     * 2.查询所有的权限名称【用户(角色)为管理员时：（拥有全部的权限）】
     */
    public static final String QUERY_ALL_PERMISSIONS =
            "SELECT `name` FROM sys_privilege";

    /**
     * 3.对于我们非超级用户，我们需要先查询 user.id(1) -> role.id(多)->permission.id(多)->permission (sys_privilege,sys_role_privilege,sys_user_role)
     *      【普通用户时（通过用户的角色查询用户的权限）】
     */
    public static final String QUERY_PERMISSION_SQL =
            "SELECT `name` FROM sys_privilege LEFT JOIN sys_role_privilege ON sys_role_privilege.privilege_id = sys_privilege.id LEFT JOIN sys_user_role  ON sys_role_privilege.role_id = sys_user_role.role_id WHERE sys_user_role.user_id = ?";

    //超级管理员的角色Code
    public  static  final  String ADMIN_ROLE_CODE = "ROLE_ADMIN" ;




    /**
     * 会员登录(手机号/邮箱登录/用户名 ->登录)
     */
    public static final String QUERY_MEMBER_SQL =
            "SELECT `id`,`password`, `status` FROM `user` WHERE mobile = ? or email = ? or username = ?";





    //REFRESH_TOKEN方式获取token【使用 用户id作为用户名进行登录】
    public  static  final  String REFRESH_TYPE = "REFRESH_TOKEN" ;

    /**
     * 纠正用户的名称:【根据用户id查询各自的 username用户名】
     *      1.使用后台用户的id 查询用户名称【sys_user管理员的纠正方式】
     */
    public static  final  String QUERY_ADMIN_USER_WITH_ID = "SELECT `username` FROM sys_user where id = ?" ;

    /**
     *      2.使用用户的id 查询用户名称【User会员的纠正方式】
     */
    public static  final  String QUERY_MEMBER_USER_WITH_ID = "SELECT `mobile` FROM user where id = ?" ;
}
